package process

import (
	"fmt"
	"go_chat_system/client/model"
	"go_chat_system/common"
	"go_chat_system/common/entity"
)

// 客户端维护的在线用户列表
var onlineUsers map[int]*entity.Account = make(map[int]*entity.Account)

// 客户端当前用户,登录成功后初始化
var currentUser model.CurrentUser

// 处理返回的NotifyUserStatusMessage
func updateUserStatus(notify *common.NotifyUserStatusMessage) {
	user, is := onlineUsers[notify.UserId]
	if !is {
		user = &entity.Account{
			UserId: notify.UserId,
			Status: notify.Status,
		}
	} else {
		user.Status = notify.Status
	}
	onlineUsers[notify.UserId] = user

	outputOnlineUser() // 显示当前在线用户
}

// 显示当前在线用户
func outputOnlineUser() {
	fmt.Println("\n------------------------ 在线用户列表 ---------------------------")
	for id := range onlineUsers {
		fmt.Println("用户Id:", id)
	}
	fmt.Println()
}

// 显示当前用户信息
func outputCurrentUser() {
	fmt.Println("\n------------------------ 当前用户信息 ---------------------------")
	fmt.Println("用户编号:", currentUser.UserId)
	fmt.Println("用户名称:", currentUser.UserName)
	fmt.Println("用户状态:", currentUser.Status)
}
